home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / pxewin.zip / PXSCROLL.HPP < prev    next >
C/C++ Source or Header  |  1992-02-07  |  3KB  |  87 lines

  1. // PXEWIN - (C) Copyright 1992 by Beam Engineering, INC.
  2.  
  3. // PXSCROLL.HPP //
  4.  
  5. // Contents ----------------------------------------------------------------
  6. //
  7. //    This module contains the class PXScroll for scrolling the database
  8. //    with the OWL.
  9. //
  10. // End ---------------------------------------------------------------------
  11.  
  12. // External Reference Name for this Header ---------------------------------
  13.  
  14. #ifndef PXSCROLL_HPP
  15.     #define PXSCROLL_HPP
  16.  
  17. // End ---------------------------------------------------------------------
  18.  
  19. // Interface Dependencies --------------------------------------------------
  20.  
  21. #ifndef BROWSE_HPP
  22.     #include "browse.hpp"
  23. #endif // BROWSE.HPP //
  24.  
  25. // End ---------------------------------------------------------------------
  26.  
  27. // class PXScroller //
  28.  
  29. _CLASSDEF(PXScroller)
  30. class PXScroller:public TScroller
  31. {
  32. private:
  33.     virtual const Pchar streamableName() const
  34.     {
  35.         return "PXScroller";
  36.     }
  37. protected:
  38.     PDBDISPLAY my_display;            /* Copy of database display
  39.                            routine */
  40.     virtual Pvoid read(Ripstream);        /* Read persistant object */
  41.     virtual void write(Ropstream);        /* Write persistant object */
  42.     PXScroller(StreamableInit):        /* Persistant object
  43.                            constructor */
  44.         TScroller(streamableInit)
  45.     {
  46.  
  47.     }
  48. public:
  49.     PXScroller(PBrowser TheWindow,
  50.         int TheXUnit,int TheYUnit,long TheXRange,long TheYRange):
  51.         TScroller((PTWindow)TheWindow,TheXUnit,TheYUnit,
  52.         TheXRange,TheYRange)
  53.     {
  54.         my_display = TheWindow->my_display;
  55.     }
  56.     static PTStreamable build();        /* Build persistant object */
  57.     virtual void VScroll(WORD ScrollEvent,    /* Redefine vert. scroll */
  58.     int ThumbPos);
  59. };
  60.  
  61. // Description -------------------------------------------------------------
  62. //
  63. //    This class customizes the scroller for operation with the database.
  64. //    The horizontal scroller is OK but the vertical scroller needs to
  65. //    be modified so that only the data scrolls and not the whole window.
  66. //    For persistant objects, The vertical and horizontal scroll positions
  67. //    are saved to the stream so that they can be recalled in the next
  68. //    session.
  69. //
  70. // End ---------------------------------------------------------------------
  71.  
  72. // Define inserters and extractors for persistant objects:
  73.  
  74. inline Ripstream operator >> (Ripstream is,RPXScroller cl)
  75.     {return is >> (RTStreamable)cl;}
  76.  
  77. inline Ripstream operator >> (Ripstream is,RPPXScroller cl)
  78.     {return is >> (RPvoid)cl;}
  79.  
  80. inline Ropstream operator << (Ropstream os,RPXScroller cl)
  81.     {return os << (RTStreamable)cl;}
  82.  
  83. inline Ropstream operator << (Ropstream os,PPXScroller cl)
  84.     {return os << (PTStreamable)cl;}
  85.  
  86. #endif // PXSCROLL_HPP //
  87.